/**
 * 路由坚挺：
 * 在一个项目中，我们通常需要在路由跳转的时候执行一些特殊的操作，如：权限控制、数据获取与加载控制、导航控制、买点，等等。。。
 */

import type { Location } from '@remix-run/router';
import { log } from 'console';
import { NavigateFunction } from 'react-router-dom';

/**
 * 全局路由监听
 *  *notice：暂时仅支持同步逻辑，一步逻辑会闪屏，如果想实现一步的话，建议封装高阶组件
 * @param next 满足某些条件时支持跳转到指定的页面
 * @param to 跳转目标页路由信息
 * @param from 发起跳转页路由信息
 */
const routerListener = (next: NavigateFunction, to: Location, from?: Location) => {
  console.log('from:', from, '----', 'to:', to);

  // 逻辑处理

  // 权限控制

  // 权限控制

  // 数据获取与加载控制

  // 导航控制

  // 埋点

  // ......

}

export default routerListener;